Пауль Хоровиц - Искусство схемотехники. Том 2 [Изд.4-е]
Вентиль ИЛИ. Выход вентиля ИЛИ имеет ВЫСОКИЙ уровень, если хотя бы на одном из его входов присутствует ВЫСОКИЙ уровень. Это можно выразить с помощью «таблицы истинности», представленной на рис. 8.2, где показан вентиль ИЛИ на 2 входа. В общем случае число входов не ограничено, однако в стандартном корпусе микросхемы обычно размещаются четыре 2-входовых вентиля, три 3-входовых или два 4-входовых. Например, на выходе 4-входового вентиля ИЛИ ВЫСОКИЙ уровень будет присутствовать в том случае, если он подан на любой из его входов. Для обозначения операции ИЛИ в булевой алгебре используется символ +. Функция «А ИЛИ В» записывается как А + В.
Рис. 8.2.
Вентиль И. Выход вентиля И имеет высокий уровень только в том случае, если ВЫСОКИЙ уровень присутствует на обоих его входах. Символическое изображение вентиля и его таблица истинности даны на рис. 8.3. Вентили И, выпускаемые промышленностью также как и вентили ИЛИ, могут иметь 3, 4, а иногда и большее число входов. Например, 8-входовой вентиль И вырабатывает на выходе ВЫСОКИЙ уровень только в том случае, если на всех его входах действует ВЫСОКИЙ уровень. Для обозначения операции И в булевой алгебре используется точка (·), которая может быть опущена, функция «А и В» записывается как А·В, или просто АВ.
Рис. 8.3.
Инвертор (функция НЕ). Иногда бывает нужно получить дополнение (инверсию) логического сигнала. Эту функцию выполняет инвертор — вентиль, который имеет только один вход (рис. 8.4). Для обозначения операции НЕ в булевой алгебре используется черта над символом или апостроф; «НЕ А» записывается как А¯ или А'. Для удобства вместо " для указания отрицания часто используются символы /, *, —, '; таким образом, НЕ А можно записать любым из следующих способов: А', —А, *А, /А, А*, А/. Мы используем в этой книге запись А'.
Рис. 8.4.
И-НЕ и ИЛИ-НЕ. Вентили могут совмещать инвертирование с выполнением функций И и ИЛИ. Далее будет показано, что такие вентили имеют более широкое распространение, чем просто И и ИЛИ (рис. 8.5).
Рис. 8.5.
Исключающее ИЛИ. Большой интерес представляет логическая функция «Исключающее ИЛИ», хотя она не относится к числу основных (рис. 8.6). На выходе вентиля «Исключающее ИЛИ» ВЫСОКИЙ уровень сформируется в том случае, если он будет подан на один из его входов (но не на оба одновременно). Другими словами, ВЫСОКИЙ уровень действует на выходе тогда, когда входы имеют различное состояние. Этот вентиль может иметь только два входа. Операция «Исключающее ИЛИ» подобна сложению двух бит по модулю 2.
Рис. 8.6.
Упражнение 8.5. Покажите, как вентиль «Исключающее ИЛИ» может быть использован в качестве «модифицируемого инвертора», который в зависимости от уровня на управляющем входе, может либо инвентировать входной сигнал, либо передавать его на выход без инверсии (буферировать).
Упражнение 8.6. Проверьте, действительно ли схемы, изображенные на рис. 8.7, преобразуют двоичный код в код Грея и наоборот.
Рис. 8.7. Параллельные преобразователи двоичного, кода в код Грея (а) и кода Грея в двоичный (б).
8.05. Схемы вентилей на дискретных элементах
Прежде чем перейти к вопросу использования вентилей, рассмотрим, как они строятся с помощью дискретных элементов. На рис. 8.8 показан диодный вентиль И.
Рис. 8.8.
Если на каком-либо его входе действует НИЗКИЙ уровень, то он будет действовать и на выходе, а ВЫСОКИЙ уровень на выходе возникает только в том случае, если он будет присутствовать на обоих входах. Эта схема обладает рядом недостатков: а) НИЗКИЙ уровень на выходе выше НИЗКОГО уровня на входе на величину падения на диоде. Естественно, слишком много диодов ставить нельзя, б) отсутствует «разветвление по выходу», т. е. возможность питать одним выходом несколько входов, так как выходная нагрузка действует на входной сигнал, в) низкое быстродействие, обусловленное резисторной нагрузкой. Вообще логические схемы, построенные на дискретных элементах, не обладают теми свойствами, которые присущи ИМС. Преимущества логических схем на ИМС связаны отчасти с применением специальной технологии (например, ионная имплантация), которая позволяет получать хорошие характеристики.
Простейшая схема транзисторного вентиля ИЛИ-НЕ показана на рис. 8.9.
Рис. 8.9.
Эта схема использовалась в семействе логических элементов РТЛ (резисторно-транзисторная логика), которые из-за низкой стоимости были популярны в 1960-х годах, но в настоящее время они совершенно не употребляются. ВЫСОКИЙ уровень, действующий по любому входу (или по обоим одновременно), откроет хотя бы один транзистор и на выходе возникнет НИЗКИЙ уровень. Поскольку по своей сути такой вентиль является инвертирующим, то для того, чтобы получить из него вентиль ИЛИ, к нему нужно добавить инвертор, как показано на рисунке.
8.06. Пример схемы с вентилями
Теперь попробуйте создать схему, которая решала бы логическую задачу, приведенную в качестве примера в гл. 1 и 2: гудок автомобиля должен включаться, когда открыта любая дверь, а водитель сидит в машине. Ответ будет очевидным, если сформулировать эту задачу таким образом: «На выходе действует ВЫСОКИЙ уровень, если открыта левая ИЛИ правая дверь И водитель сидит в машине», т. е. Q = (L + R)S. Как решать эту задачу с помощью вентилей, показано на рис. 8.10.
Рис. 8.10.
Выход ИЛИ имеет ВЫСОКИЙ уровень, когда одна ИЛИ другая дверь (или обе вместе) открыты. Если это так И водитель сидит в машине, Q имеет высокий уровень. Добавив транзистор, можно сделать так, чтобы эта схема включала гудок или замыкала контакт реле.
В реальных устройствах ключи, которые вырабатывают входные сигналы, обычно замыкают цепь на землю. (Это делается для сокращения монтажных связей, а также по другим причинам, которые, в частности, связаны с использованием широко распространенных логических элементов типа ТТЛ и вскоре будут рассмотрены.) Это означает, что при открывании дверей сигналы на входах будут иметь НИЗКИЙ уровень, т. е. мы будем иметь входы, использующие отрицательную логику. С учетом этого построим для данного примера новую схему, обозначим ее входы через L', R' и S'. Сначала здесь нужно определить, действует ли НИЗКИЙ уровень на каком-либо из входов (L', R'), связанных с дверцами автомобиля, т. е. состояние «оба входа имеют ВЫСОКИЙ уровень» нужно отличать от остальных. Это выполняется с помощью схемы И, следовательно, сигналы L и R' нужно подать на входы вентиля И. Выход будет иметь НИЗКИЙ уровень, когда любой из входов имеет НИЗКИЙ уровень. Назовем эту функцию ЛЮБОЙ'.
Теперь определим состояние, когда сигналы ЛЮБОЙ' и S' имеют НИЗКИЕ уровни, т. е. нужно отличить от остальных состояние, когда «оба входа имеют НИЗКИЙ уровень». Эта операция выполняется с помощью вентиля ИЛИ. Полученная схема показана на рис. 8.11.
Рис. 8.11.
Вместо вентиля ИЛИ мы пользовались вентилем ИЛИ-НЕ для того, чтобы иметь такой же выход, как и в предыдущей схеме, т. е. ВЫСОКИЙ уровень Q при желаемом состоянии. Но здесь произошло что-то странное: по сравнению с предыдущей схемой вместо вентиля И мы воспользовались вентилем ИЛИ (и наоборот). Этот случай подробно рассмотрим в разд. 8.07.
Упражнение 8.7. Определите, какие функции выполняют схемы, изображенные на рис. 8.12.
Рис. 8.12.
Взаимозаменяемость вентилей. При построении цифровых схем надо помнить, что из вентиля одного типа можно получить вентиль другого типа. Например, если вам нужен вентиль И, а у вас есть половина стандартной ИМС 7400 (4 И-НЕ на два входа), то вы можете произвести замену, как показано на рис. 8.13.
Рис. 8.13.
Второй вентиль используется в качестве инвентора, в результате этого получается функция И. Лучше понять эту идею вам помогут следующие упражнения.